#ifndef MIDDLEWIDGETVIRTUAL_H
#define MIDDLEWIDGETVIRTUAL_H

#include <QWidget>
#include <QPalette>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QHBoxLayout>

#include "ENUM/enum.h"
#include "DebugPrint/myDebugPrint.h"

/*
 *  该类作为中心部件类的父类，主要使用多态，方便中心部件子类的构建统一性。以及上层统一管理
 */

class MiddleWidgetVirtual : public QWidget
{
    Q_OBJECT
public:
    explicit MiddleWidgetVirtual(QWidget *parent = nullptr);
    /**
     @interpret 返回当前控件的高度（纯虚函数）  *若不实现，上层在调用时就会因为返回高度错误而导致显示异常*
     @return 返回当前控件高度值
     */
    virtual int RFixedHeight() = 0;
    /**
     @interpret 对控件宽度操作（纯虚函数）
     @param   kind: 表示当前是需要获取还是设置当前宽度
     @param   widget: 传入当前需要修改的宽度
     @return  返回当前宽度的值
     */
    virtual int fixedWidth(ParameterKind kind = ParameterKind::Get, int widget = 0) = 0;
    /**
     @interpret 设置调色板
     @param     palette: 当前需要修改的调色板
     @return  false修改失败;true修改成功;
     */
    virtual bool setPaletteBF(const QPalette& palette) = 0;
    /**
     @interpret     将语言初始化为中文(因为在翻译器中中文被设置为翻译源，所以每次切换语言前都得先将语言切换为中文)
     */
    virtual void LanguageInit() = 0;
signals:

};

#endif // MIDDLEWIDGETVIRTUAL_H
